home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / psion / dbf.fmt < prev    next >
Text File  |  1995-03-31  |  5KB  |  145 lines

  1. PSIONICS FILE - DBF.FMT
  2. =======================
  3. Format and use of Data files
  4. Last modified 1994-09-14
  5. ========================
  6.  
  7. File format
  8. -----------
  9.  
  10. A data file (also called a DBF file) begins with a 22 byte header of the
  11. following form:
  12.   Offset  0 to  15: file signature
  13.   Offset 16 (word): DBF software version number used to create the file
  14.   Offset 18 (word): size of header in bytes (N)
  15.   Offset 20 (word): earliest DBF software version number that can use the file
  16.   Offset 22 to N-1: extended header
  17.  
  18. The signature is used to verify that the file is applicable to the application
  19. using it. The version numbers are used to verify that the format is compatible;
  20. only the top 4 bits are tested.
  21.  
  22. Files created using the Data or Agenda (Series 3s) applications or the CREATE
  23. keyword have a signature which is the cstr "OPLDatabaseFile".
  24.  
  25. The rest of the file consists of records. All records have the form:
  26.   Offset  0 (word):
  27.     Bits  0 to 11: size of data portion (L)
  28.     Bits 12 to 15: record type
  29.        0 = deleted record (should be ignored)
  30.        1 = mergable data record
  31.        2 = field information record
  32.        3 = descriptive record
  33.        4 = private data record
  34.        5 = private data record
  35.        6 = private data record
  36.        7 = private data record
  37.        8 = mergable data record
  38.        9 = mergable data record
  39.       10 = mergable data record
  40.       11 = mergable data record
  41.       12 = mergable data record
  42.       13 = mergable data record
  43.       14 = mergable voice data record
  44.       15 = reserved for system use
  45.   Offset  2 to L+1: data portion
  46.  
  47. There may be at most 65534 records, and the data portion of each is limited
  48. to 65534 bytes (so the total record length is limited to 65536 bytes).
  49.  
  50. When a file is merged into another one, mergable data records will be copied,
  51. but not private data records, the field information record, or the descriptive
  52. record.
  53.  
  54. Data files are based around fields. fields may be words, longs, reals, or
  55. qstrs (limited to 254 characters). Fields after the first 32 are less usable;
  56. for example, they must be qstrs, and cannot be accessed through OPL data file
  57. keywords.
  58.  
  59. The first record in the file must be a field information record, and all other
  60. field information records in the file will be ignored. Each byte of the record
  61. specifies the type of the corresponding field:
  62.     0 = word
  63.     1 = long
  64.     2 = real
  65.     3 = qstr
  66. The field information record must define between 1 and 32 fields; if it defines
  67. exactly 32, then fields 33 onwards are all qstrs, as noted above.
  68.  
  69. Data records are broken into fields by the DBF software according to the field
  70. information record; there are no separators between the fields of a record.
  71. Trailing fields that are empty qstrs or zero numbers may be omitted from a
  72. record.
  73.  
  74. The Data application uses the following special character codes within qstr
  75. fields:
  76.    5 = diallable telephone number follows
  77.   20 = (if first character of field) treat this field as joined on to the
  78.        previous one, which must also be a qstr
  79.   21 = forced line feed
  80.  
  81. There should only be one descriptive record in a file, but it can occur
  82. anywhere in the file. The descriptive record consists of one or more subrecords
  83. with the same format (length, type, data) as normal records. In general,
  84. unknown types of subrecord should be copied unchanged, as other applications
  85. may be using them.
  86.  
  87. The Data application uses the following types of subrecord. Types 2 and 3 are
  88. used on the MC and are not described. Types 6 to 11 are only used on the
  89. Series 3a version of Data.
  90.  
  91. * Sub-record type 1
  92. This contains 2 bytes:
  93.   Offset  0 (word): tab size
  94.  
  95. * Sub-record type 4
  96. This contains the field labels as qstrs, in order. Trailing blank labels may,
  97. but need not, be omitted.
  98.  
  99. * Sub-record type 5
  100. This contains 2 bytes:
  101.   Offset  0 (byte):
  102.     Bit 0: status window visible
  103.     Bit 1: wrap on
  104.     Bit 2: labels visible
  105.     Bit 4: @seen used on Series 3a, purpose unknown@
  106.   Offset  1 (byte): unused
  107.  
  108. * Sub-record type 6
  109. This holds information about printer set-up and is identical to record type 2
  110. in Word files (see WORD.FMT).
  111.  
  112. * Sub-record type 7
  113. This is used to store the printer driver. It is identical to record type 3 in
  114. Word files:
  115.   Offset  0 (byte): printer driver model number
  116.   Offset  1 (cstr): printer driver library
  117. A printer driver library can support several similar printers; the model number
  118. specifies which is selected.
  119.  
  120. * Sub-record type 8
  121. This holds the header text as a cstr.
  122.  
  123. * Sub-record type 9
  124. This holds the footer text as a cstr.
  125.  
  126. * Sub-record type 10
  127. This contains 3 bytes and holds diamond settings:
  128.   Offset  0 (byte): 0=omit Find,   255=include Find
  129.   Offset  1 (byte): 0=omit Change, 255=include Change
  130.   Offset  2 (byte): 0=omit Add,    255=include Add
  131.  
  132. * Sub-record type 11
  133. This contains 4 bytes and holds the current search status:
  134.   Offset  0 (word): start field (0 means all fields, 1 means first field, etc.)
  135.   Offset  2 (word): end field (255 means all from start field)
  136.  
  137. * Sub-record type 15
  138. This is used by the Series 3s Agenda. See AGENDA.FMT for more details.
  139.  
  140.  
  141. Kernel services
  142. ---------------
  143.  
  144. @To be written@
  145.